package com.baofu.paycore.service.facade.model;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * 冲正 model
 * <p/>
 * <ul>
 * <li>方法列表</li>
 * </ul>
 *
 * @author LZQ
 * @version 1.0.0 createTime: 14/12/9 上午10:43
 * @see
 * @since 1.6
 */
@Getter
@Setter
@ToString(callSuper = true)
public class ReverseDTO extends PayBaseDTO {

    private static final long serialVersionUID = 968796665146612633L;

    /**
     * 原币币种
     */
    private String sourceCcy;
    /**
     * 原币金额
     */
    private Long sourceAmt;
    /**
     * 汇率
     */
    private double rate;
    /**
     * 收单商户编号
     */
    @NotBlank(message = "收单商户编号不能为空")
    @Pattern(regexp = "[0-9]{1,30}",message = "收单商户编号格式有误")
    private String supplyOrgCode;
    /**
     * 原支付单号
     */
    private String oldPayNo;
    /**
     * 原请求日期
     */
    @NotNull(message = "原请求日期不能为空")
    private Date oldRequestDate;
    /**
     * 原请求业务编号
     */
    @NotBlank(message = "原请求业务编号不能为空")
    @Pattern(regexp = "[0-9a-zA-Z]{20,32}",message = "原请求业务编号格式有误")
    private String oldRequestBizNo;

    /**
     * 原请求系统
     */
    @NotBlank(message = "原请求系统不能为空")
    @Pattern(regexp = "(WG)|(CACC)",message = "原请求系统格式有误")
    private String oldRequestSystem;
}
